__version__ = "1.1.0"
import openpyxl
import os
from openpyxl import load_workbook

'''2024_9_6 shp 将表的记录导入到Excel中的函数
    参数：
    fields 字段名
    table_rows 字段内容
    filename 文件名
    table_name 表名
    
    返回值:
    filename 新生成excel文件称
'''
def export_to_excel(fields, table_rows , table_name,filename):
    # 调用函数，取得数据表的字段信息和记录信息
    # 生成Excel文件的工作簿
    workbook = openpyxl.Workbook()
    # 在工作簿中生成一个工作表，表名设为"table_"加数据表名
    sheet = workbook.create_sheet('table_' + table_name, 0)
    # 在工作表第1行上写上字段名
    for i in range(0, len(fields)):
        # 在openpyxl模块中定义工作表的行始值是1，列起始值是1，
        # 所以cell()函数第1个参数是1表示第1行，第二参数为i+1是因为i从0开始计数,
        # fields[i][0]取得字段的名称
        sheet.cell(1, i + 1, fields[i][0])
    # 从工作表第2行开始写入每条记录的内容
    for row in range(0, len(table_rows)):
        for col in range(0, len(table_rows[row])):
            sheet.cell(row + 2, col + 1, '%s' % table_rows[row][col])
    # 保存到Excel文件中
    filename = file_check(filename)

    current_directory = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    os.chdir(os.path.dirname(current_directory)+'/Downloads')

    workbook.save(filename)
    workbook.close()
    return filename

#2024_9_6 shp 判断文件是否存在，如果存在就加1
#file_name 文件名
def file_check(file_name):
    temp_file_name = file_name
    i = 1
    while i:
        print(temp_file_name)
        print(os.path.exists("./" + temp_file_name))
        if os.path.exists("./" + temp_file_name):
            #name文件名,suffix文件名后缀
            name, suffix = file_name.split('.')
            name += '(' + str(i) + ')'
            temp_file_name = name+'.'+suffix
            i = i+1
        else:
            return temp_file_name

#2024_9_6 shp 将表的记录连续导入到Excel中的函数
# fields 字段名
# table_rows 字段内容
# filename 文件名
# table_name 表名
# count_row 开始行
def export_to_excel_row(fields, table_rows, filename , table_name, count_row):
    # 调用函数，取得数据表的字段信息和记录信息
    count = 0
    # 2024_9_6 shp判断是否为第一次执行如果是则执行
    # 在工作表第1行上写上字段名
     #打开文件
    workbook =load_workbook(filename='./'+ filename)
    #获取表明
    sheet = workbook[table_name]

    for i in range(0, len(fields)):
        # 在openpyxl模块中定义工作表的行始值是1，列起始值是1，
        # 所以cell()函数第1个参数是1表示第1行，第二参数为i+1是因为i从0开始计数,
        # fields[i][0]取得字段的名称
        sheet.cell(1, i + 1, fields[i][0])

    # 从工作表第2行开始写入每条记录的内容
    for row in range(0, len(table_rows)):
        for col in range(0, len(fields)):
            sheet.cell(row + count_row, col + 1, '%s' % table_rows[row][col])

    # 保存到Excel文件中

    workbook.save('./'+filename)
    count_row+=len(table_rows)
    return  count_row

#拿取第一列的数据
def get_execl_col (filename,table_name):
    # 打开文件
    workbook = load_workbook(filename="./"+ filename)
    # 获取表明
    sheet = workbook[table_name]
    ans = sheet["A"]
    #for cell_columns in ans:
        #print(cell_columns)

    return ans
# filename 文件名
#关键词
def new_execl(filename,cells):
    filename = file_check(filename)

    # 生成Excel文件的工作簿
    workbook = openpyxl.Workbook()
    #获取关键词
    for cell_columns in cells:
        # 在工作簿中生成一个工作表，表名设为"table_"加数据表名
        workbook.create_sheet('app聊天信息_'+ cell_columns.value, 0)


    workbook.save('./' + filename)
    return filename


#拿出表格所有数据
def get_execl (file_path):
    workbook = load_workbook(file_path)




if __name__ == '__main__':

    print (get_execl_col('keyword.xlsx','关键词'))